home *** CD-ROM | disk | FTP | other *** search
/ Dr. Windows 3 / dr win3.zip / dr win3 / PROGRAMR / CLIKBR15.ZIP / TESTCLIK.ZIP / TESTCLIK.C < prev    next >
C/C++ Source or Header  |  1993-03-22  |  15KB  |  520 lines

  1. /*============================================================================
  2.   testclik -- Demo program for ClickBar.DLL and ClickDlg.DLL
  3.  
  4.   File      : testclik.c
  5.  
  6.   Prototype : 
  7.  
  8.   Call      : 
  9.  
  10.   Library   : 
  11.  
  12.   7 February 1992 - dlcampbell
  13.   (c) 1991 Campbell SoftWare
  14. ----------------------------------------------------------------------------*/
  15. #define WINVER 0x0300
  16. #include <windows.h>
  17. #include <string.h>
  18. #include <clickdlg.h>
  19. #include <clickbar.h>
  20.  
  21. #include "testclik.h"
  22.  
  23. /*----------------------------------------------------------------------------
  24.   Prototypes
  25. ----------------------------------------------------------------------------*/
  26. BOOL FAR PASCAL AboutDlgProc(HWND, WORD, WORD, LONG);
  27. BOOL FAR PASCAL PickDlgProc(HWND, WORD, WORD, LONG);
  28. void MakeHelpPathName(char *);
  29. long FAR PASCAL WndProc(HWND, WORD, WORD, LONG);
  30.  
  31. short   cxClient, cyClient;
  32. int     InitSettings, OldInitSettings;
  33.  
  34. char    szAppName[] = "testclik";
  35. HANDLE  hInst;
  36. HANDLE  hClickBar, hClickDlg;
  37. HWND    hWndMain;
  38. HWND    hWndDlg = NULL;
  39. HWND    hWndDlg2 = NULL;
  40. HWND    hDlgModeLess;
  41. FARPROC lpfnDisplayDlg, lpfnDlgMove, lpfnDlgSetup, lpfnDlgPlus;
  42. FARPROC lpfnClickBarSetup;
  43. static  FARPROC lpfnPickDlgProc;
  44.  
  45. char    szHelpFileName[EXE_NAME_MAX_SIZE+1];    /* Help file name*/
  46.  
  47. /*============================================================================
  48.   WinMain -- main window procedure for TestClik
  49.  
  50.   File      : testclik.C
  51.  
  52.   Prototype : int PASCAL WinMain (HANDLE, HANDLE, LPSTR, int);
  53.  
  54.   Call      : WinMain (hInstance, hPrevInstance, lpszCmdParam, nCmdShow);
  55.  
  56.   Library   : 
  57.  
  58.   7 February 1992 - dlcampbell
  59.   (c) 1991 Campbell SoftWare
  60. ----------------------------------------------------------------------------*/
  61. #pragma warn -par                       /* nCmdShow, lpszCmdParam not used */
  62. int PASCAL WinMain (HANDLE hInstance, HANDLE hPrevInstance,
  63.                                              LPSTR lpszCmdParam, int nCmdShow)
  64. {
  65. MSG         msg;
  66. WNDCLASS    WndClass;
  67. HDC         hdc;
  68. TEXTMETRIC  tm;
  69. HMENU       hMenu;
  70. GLOBALHANDLE   MyStructHandle;
  71. FPWYNAPSESTRUCT MyStruct;
  72. static char szMenuTitle[21 + 1];
  73.  
  74. if (hPrevInstance)
  75.    return FALSE;
  76.  
  77. WndClass.style         = CS_HREDRAW | CS_VREDRAW;
  78. WndClass.lpfnWndProc   = (WNDPROC)WndProc;
  79. WndClass.cbClsExtra    = 0;
  80. WndClass.cbWndExtra    = 0;
  81. WndClass.hInstance     = hInstance;
  82. WndClass.hIcon         = LoadIcon(hInstance, szAppName);
  83. WndClass.hCursor       = LoadCursor(NULL, IDC_ARROW);
  84. WndClass.hbrBackground = GetStockObject(WHITE_BRUSH);
  85. WndClass.lpszMenuName  = szAppName;
  86. WndClass.lpszClassName = szAppName;
  87.  
  88. RegisterClass(&WndClass);
  89.  
  90. hdc = CreateIC("DISPLAY", NULL, NULL, NULL);
  91.    GetTextMetrics(hdc, &tm);
  92. DeleteDC(hdc);
  93.  
  94. cxClient = GetSystemMetrics(SM_CXSCREEN);
  95. cyClient = GetSystemMetrics(SM_CYSCREEN);
  96.  
  97. hClickBar = LoadLibrary("CLICKBAR.DLL");
  98. if (hClickBar < 32)
  99.    {
  100.    FreeLibrary(hClickBar);
  101.    MessageBox(GetFocus(),"Dynamic Link Library CLICKBAR.DLL must be present",
  102.                                        szAppName, MB_ICONEXCLAMATION | MB_OK);
  103.    return 0;
  104.    }
  105.  
  106. hClickDlg = LoadLibrary("CLICKDLG.DLL");
  107. if (hClickDlg < 32)
  108.     {
  109.    FreeLibrary(hClickDlg);
  110.     MessageBox(GetFocus(),"Dynamic Link Library CLICKDLG.DLL must be present",
  111.                                        szAppName, MB_ICONEXCLAMATION | MB_OK);
  112.    return 0;
  113.     }
  114.  
  115. lpfnDlgSetup      = GetProcAddress(hClickDlg,  "ClickBarDialogSetup");
  116. lpfnDlgMove       = GetProcAddress(hClickDlg,  "ClickBarDialogMove");
  117. lpfnDisplayDlg    = GetProcAddress(hClickDlg,  "ClickBarDialogProc");
  118.  
  119. lpfnClickBarSetup = GetProcAddress(hClickBar,  "ClickBarSetup");
  120.  
  121. MyStructHandle = GlobalAlloc(GHND, sizeof(WYNAPSE_STRUCT));
  122. MyStruct = (FPWYNAPSESTRUCT)GlobalLock(MyStructHandle);
  123.    lstrcpy(MyStruct->RegName, (LPSTR)"Your Name");  /* ClickBar RegName */
  124.    MyStruct->RegNumber = 0;                         /* ClickBar RegNumber */
  125. GlobalUnlock(MyStructHandle);
  126.  
  127. (*lpfnClickBarSetup)(MyStructHandle);
  128.  
  129. GlobalFree(MyStructHandle);
  130.  
  131. hWndMain = CreateWindow(szAppName,   /* window class name */
  132.                            szAppName,  /* window caption */
  133.                            WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
  134.                            CW_USEDEFAULT,      /* initial x pos */
  135.                            CW_USEDEFAULT,      /* initial y pos */
  136.                         CW_USEDEFAULT, /* initial x size */
  137.                         CW_USEDEFAULT, /* initial y size */
  138.                         NULL,               /* parent window handle */
  139.                         NULL,               /* window menu handle */
  140.                         hInstance,          /* program instance handle */
  141.                            NULL);              /* creation parameters */
  142.  
  143. hMenu = GetSystemMenu(hWndMain, FALSE);
  144. AppendMenu(hMenu, MF_SEPARATOR, 0, NULL);
  145. AppendMenu(hMenu, MF_STRING,    IDM_ABOUT, "About...");
  146. AppendMenu(hMenu, MF_STRING,    IDM_Pick, "Pick...");
  147. AppendMenu(hMenu, MF_STRING,    IDWHELP,  "Help....");
  148.  
  149. hInst = hInstance;
  150.  
  151. MakeHelpPathName(szHelpFileName);
  152.  
  153. ShowWindow(hWndMain, nCmdShow);
  154. UpdateWindow(hWndMain);
  155.  
  156. hWndDlg = CreateDialog(hInst, "CLICK", hWndMain,
  157.                                   MakeProcInstance((*lpfnDisplayDlg), hInst));
  158.  
  159. lstrcpy(szMenuTitle, "AbNormal");
  160. SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
  161. lstrcpy(szMenuTitle, "AsNormal");
  162. SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
  163. lstrcpy(szMenuTitle, "ProNormal");
  164. SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
  165. lstrcpy(szMenuTitle, "Not Normal");
  166. SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
  167. lstrcpy(szMenuTitle, "Huh?");
  168. SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
  169. lstrcpy((LPSTR)szMenuTitle, "Normal");
  170. SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_ADDSTRING, 0, (LONG)(LPSTR)szMenuTitle);
  171.  
  172. SendDlgItemMessage(hWndDlg, IDXCOMBO, CB_SELECTSTRING, -1, (LONG)(LPSTR)szMenuTitle);
  173.  
  174. SendMessage(hWndMain, WM_NCACTIVATE, 1, 0L);
  175.  
  176. while (GetMessage(&msg, NULL, 0, 0))
  177.    {
  178.    if ((hWndDlg == 0 || !IsDialogMessage(hWndDlg, &msg)) && (hDlgModeLess == 0 || !IsDialogMessage(hDlgModeLess, &msg)))
  179.       {
  180.       TranslateMessage(&msg);
  181.       DispatchMessage(&msg);
  182.       }
  183.    }
  184.  
  185.  
  186. /*----------------------------------------------------------------------------
  187.   Now free the DLLs used in the application...
  188. ----------------------------------------------------------------------------*/
  189. FreeLibrary(hClickBar);
  190. FreeLibrary(hClickDlg);
  191.  
  192. return msg.wParam;
  193. }                                       /* int PASCAL WinMain */
  194. #pragma warn .par
  195.  
  196. /*============================================================================
  197.   AboutDlgProc -- Displays the EGO box for the application
  198.  
  199.   File      : ExitWin.C
  200.  
  201.   Prototype : BOOL FAR PASCAL AboutDlgProc (HWND, WORD, WORD, LONG)
  202.  
  203.   Call      : AboutDlgProc (hDlg, message, wParam, lParam)
  204.  
  205.   Library   : 
  206.  
  207.   7 February 1992 - dlcampbell
  208.   (c) 1991 Campbell SoftWare
  209. ----------------------------------------------------------------------------*/
  210. BOOL FAR PASCAL AboutDlgProc (HWND hDlg, WORD message, WORD wParam,
  211.                                                                   LONG lParam)
  212. {
  213. char szBuffer[100];
  214.  
  215. switch (message)
  216.    {
  217.    case WM_INITDIALOG :
  218.       wsprintf(szBuffer, "%s at %s", (LPSTR) __DATE__, (LPSTR) __TIME__);
  219.       SetWindowText(GetDlgItem(hDlg, ID_VERSION), szBuffer);
  220.       return TRUE;
  221.  
  222.    case WM_COMMAND :
  223.       switch (wParam)
  224.          {
  225.          case IDOK :
  226.          case IDCANCEL :
  227.             if (HIWORD(lParam) == BN_CLICKED)
  228.                EndDialog(hDlg, wParam);
  229.             return TRUE;
  230.  
  231.          default :
  232.             return TRUE;
  233.          }
  234.  
  235.    default :
  236.       return FALSE;
  237.    }
  238. }                                       /* AboutDlgProc */
  239.  
  240. /*============================================================================
  241.   PickDlgProc -- Displays the EGO box for the application
  242.  
  243.   File      : ExitWin.C
  244.  
  245.   Prototype : BOOL FAR PASCAL